const { readFile, read } = require('fs');

// 使用 callback 处理异步
// readFile('./callback.js', 'utf8', (error, data) => {
//     if (error) return console.log('读取文件失败', error.message);
//     console.log('data', data);

//     // 当读取 callback.js 成功后，再读取 index.js
//     readFile('./index.js', 'utf8', (error, data) => {
//         if (error) return console.log('读取文件失败', error.message);
//         console.log('data', data);

//         // 当读取 index.js 成功后，再读取 koa-router.js
//         readFile('./koa-router.js', 'utf8', (error, data) => {
//             if (error) return console.log('读取文件失败', error.message);
//             console.log('data', data);

//             // 当读取 koa-router.js 成功后，再读取 logger.txt
//             readFile('./logger.txt', 'utf8', (error, data) => {
//                 if (error) return console.log('读取文件失败', error.message);
//                 console.log('data', data);

//                 // 当读取 logger.txt 成功后，再读取 userList.json
//                 readFile('./userList.json', 'utf8', (error, data) => {
//                     if (error)
//                         return console.log('读取文件失败', error.message);
//                     console.log('data', data);
//                 });
//             });
//         });
//     });
// });

// promise
function readFilePromise(path) {
    return new Promise((resolve, reject) => {
        // 这里面就可以写异步操作了
        readFile(path, 'utf8', (error, data) => {
            if (error) {
                reject(error);
                return;
            }
            resolve(data);
        });
    });
}

// readFilePromise('./callback.js').then(
//     (data) => {
//         console.log('data', data);
//     },
//     (error) => {
//         console.log('error', error);
//     },
// );

// async / await
(async function() {
    const res = await readFilePromise('./callback.js');
    console.log('res', res);
})();
